home *** CD-ROM | disk | FTP | other *** search
- #!/usr/skunk/bin/expect --
- # Name: cryptdir
- # Author: Don Libes, NIST
- #
- # Synopsis:
- # cryptdir [dir]
- # decryptdir [dir]
- #
- # Encrypt or decrypts the current directory or named directory if given.
-
- if {[llength $argv] > 0} {
- cd $argv
- }
-
- # encrypt or decrypt?
- set decrypt [regexp "decrypt" $argv0]
-
- set timeout -1
- stty -echo
- send "Password:"
- expect -re "(.*)\n"
- send "\n"
- set passwd $expect_out(1,string)
-
- # wouldn't want to encrypt files with mistyped password!
- if !$decrypt {
- send "Again:"
- expect -re "(.*)\n"
- send "\n"
- if ![string match $passwd $expect_out(1,string)] {
- send_user "mistyped password?"
- stty echo
- exit
- }
- }
- stty echo
-
- log_user 0
- foreach f [glob *] {
- set strcmp [string compare .crypt [file extension $f]]
- if $decrypt {
- # skip files that don't end with ".crypt"
- if 0!=$strcmp continue
- spawn sh -c "exec crypt < $f > [file root $f]"
- } else {
- # skip files that already end with ".crypt"
- if 0==$strcmp continue
- spawn sh -c "exec crypt < $f > $f.crypt"
- }
- expect "key:"
- send "$passwd\r"
- expect
- wait
- exec rm -f $f
- send_tty "."
- }
- send_tty "\n"
-